import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm';
import { Order } from './order.entity';
import { ProductSku } from './product-sku.entity';

@Entity('order_item')
export class OrderItem {
  @PrimaryGeneratedColumn()
  id: number;

  // 关联主订单（多对一关系）
  @ManyToOne(() => Order, order => order.items)
  order: Order;

  // 关联商品SKU信息
  @ManyToOne(() => ProductSku)
  sku: ProductSku;

  // 购买数量
  @Column()
  quantity: number;

  // 下单时单价（保留价格快照）
  @Column({ type: 'decimal', precision: 10, scale: 2 })
  unitPrice: number;

  // 商品项总价（数量×单价）
  @Column({ type: 'decimal', precision: 10, scale: 2 })
  totalPrice: number;

  // 商品快照信息（JSON格式存储下单时的商品详情）
  @Column('json')
  productSnapshot: Record<string, any>;
}